<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>index</title>
	<meta name="generator" content="TextMate http://macromates.com/">
	<meta name="author" content="Zach">
	<!-- Date: 2007-04-25 -->
	<style type="text/css">
	body {
		font-family: arial;
		font-size:12px;
	}
	h1 {
		border-bottom: 10px solid #567;
	}
	h2 {
		border-bottom: 5px solid #456;
	}
	</style>
</head>
<body>
	
	<h1>Synchronicity</h1>
	<h2>Project Description</h2>
	<p>This web application is specifically developed to assist in managing projects developed with extreme programming methodology. Extreme programming focuses more on adaptability then predictably. Extreme Programming uses ongoing changes to requirements as the natural progression of development, hence the ability to change, add, or delete requirements in the middle of development to make the end product more efficient. Synchronicity aims to help developers as well as managers better understand and use Extreme Programming.</p>
	<h2>System Requirement</h2>
	<p>Zope 2.9.6 <br />
	   Plone 2.5.2<br />
	   Python 2.4.4<p>
	<h2>Tools</h2>
	<h3>Framework</h3>
	<p>The framework that this application is built off of is called Zope. There is also another layer called Plone that provides Synchronicity with the proper tools to work properly.</p>
	<h3>Language</h3>
	<p>Python is an object oriented programming language, build on C, and has a strong community behind it.</p>
	<h3>Database</h3>
	<p>The database is contained in a Zope Object Database, or ZODB for short. This gives us the ability to use a object oriented database model instead of a relational one. This gives us the advantages of having more complex relationships between objects and their methods.</p>
	<h3>Goals/Objectives</h3>
	<ol>
		<li>To develop an easy to use way of managing projects developed in the Extreme Programming methodology</li>
		<li>Provide a project manager the ability to add projects</li>
		<li>Provide a developer the ability to create, modify, and delete objectives</li>
		<li>Provide a developer the ability to break up assignments into easy to develop tasks which all fit together to create the finished piece of software.</li>
		<li>Allow the project manager the ability to generate reports on projects currently being worked on without having each developer write a progress report. </li>
		<li>Allow documentation to be generated about who worked on a project and who requested it.</li>
		<li>Give developers the necessary tools needed to develop robust, constantly changing applications in the fastest way possible.</li>
		<li>Provide an administration page for project managers</li>
		<li>Provide the ability for developers to update tasks through a secure web interface.</li>
	</ol>
	<h2>Terms</h2>
	<h3>Project</h3>
	<p>A very basic overview of the software to be developed.<p>
	<h3>Objective</h3>
	<p>A large chunk of a project, mainly a major module or something the software has to do. Assignments are broken down and assigned to developers.<p>
	<h3>Task</h3>
	<p>A small part of a project, usually worked on by a team of developers and is added to the larger assignment once it is finished.<p>


	<h1>User Guide</h1>
	
	<h2>Login</h2>
	<p>Logging in to the system is a simple task. First make sure you have an account and then either append "/login_form" to the url you are at or enter your credentials in the login box displayed below</p>
	<img src="images/login_box.png" />
	
	<h2>Adding, Editing, and Deleting Projects, Objectives, and Tasks</h2>
	<h2>Projects</h2>
	<p>A project is a collection of objectives and tasks needed to complete this project. A project can do several functions, it just needs to be utilized by a complany</p>
	<h3>Add a Project</h3>
	<ol>
		<li>In the drop down menu called "Add Item" click "Project"
			<br />
			<img src="images/add_project.png" />
		</li>
		<li>Fill in the required information and save
			<br />
			<img src="images/edit_project.png" />
			</li>
	</ol>
	

	<h3>Editing of a Project</h3>
	<p>To modify any part of the project click on the edit tab on the top of the content area. This will return you to a form which will allow you to edit the object directly</p>
	
	<h3>Deleting a Project</h3>
	<p>This is accomplished by going to the folder which contains the Project, selecting it and clicking the delete button.<br /><img src="images/del_project.png"></p>
	<h2>Objectives</h2>
	<p>Objectives are the part of the project which breaks down the bigger picture into smaller chunks. These chunks are still very abstract, but they define different modules that are required for completing the project.</p>
	<h3>Adding an Objective</h3>
	<ol>
		<li>In the drop down "Add Item" menu inside a project, click "Objective".<br />
			<img src="images/add_objective.png">
		</li>
		<li>Fill in the information required and save<br />
			<img src="images/edit_objective.png">
		</li>
	</ol>
	<h3>Editing of an Objective</h3>
	<p>To modify any part of the Objective click on the edit tab on the top of the content area. This will return you to a form which will allow you to edit the object directly</p>
	
	<h3>Deleting a Project</h3>
	<p>This is done exactly like deleting the project.</p>
	
	<h3>Tasks</h3>
	<p>A task is the smallest part of the project. It is where the Objective is broken down into its smallest part</p>
	<h3>Adding a Task</h3>
	<p>A task can be added anywhere within the Project</p>
	<ol>
		<li>In the drop down "Add Item", click the "Task".<br />
			<img src="images/add_task.png">
		</li>
		<li>Fill in the information required and save<br />
			<img src="images/edit_task.png"></li>
	</ol>
	<h3>Editing of an Task</h3>
	<p>To modify any part of the Task click on the edit tab on the top of the content area. This will return you to a form which will allow you to edit the object directly</p>
	
	<h3>Deleting a Task</h3>
	<p>This is done exactly like deleting the project.</p>
	<h2>Technical Manual</h2>
	<h3>Workflows</h3>
	<p>Workflows are how the states of the objects are determined. It gives the ability to quickly look and see what projects are approved, rejected, or in progress. Every object has its own different workflow and below will be a brief description of each state and transition state between them.</p>
	<h3>Project and Objective Workflow</h3>
	<p>Both of these objects have the same workflows. This was done because these types of objects are very similar in the way they work. They both do almost the same functions, and this gives them the ability to act alike but not be alike.</p>
	<img src="images/project_workflow.png" />
	<h3>Task Workflows</h3>
	<p></p>
	<img src="images/task_workflow.png" />
	<h3>Project UML Diagram.</h3>
	<img src="images/uml.png" />
</body>
</html>
